﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Common;

namespace WoodManager.UI
{
    public partial class ModuleVan : Form
    {
        ConnectManager cm = new ConnectManager();
        Validator vali = new Validator();

        DataTable tbNhomModule, tbModule;

        string sModuleIdOld = "";
        int iRowIndex = 0;

        public ModuleVan()
        {
            InitializeComponent();
        }

        private void ModuleVan_Load(object sender, EventArgs e)
        {
            loadModuleData();
            loadNhomModuleData();
        }

        private void loadModuleData()
        {
            tbModule = cm.getTable("select * from ViewModule");
            dtgModule.DataSource = tbModule;
        }

        private void loadNhomModuleData()
        {
            tbNhomModule = cm.getTable("Select * from NhomModule");
            cbbNhomModule.DataSource = tbNhomModule;
            cbbNhomModule.DisplayMember = "TenNhomModule";
            cbbNhomModule.ValueMember = "NhomModuleID";
        }

        private void dtgModule_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
                return;

            txtTenModule.Text = this.tbModule.Rows[e.RowIndex]["Tên Module"].ToString();
            this.txtMaModule.Text = tbModule.Rows[e.RowIndex]["Mã Module"].ToString();
            txtGhiChu.Text = tbModule.Rows[e.RowIndex]["Ghi chú"].ToString();
            this.cbbNhomModule.Text = tbModule.Rows[e.RowIndex]["Nhóm Module"].ToString();
            sModuleIdOld = txtMaModule.Text;
            iRowIndex = e.RowIndex;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {

                if ((txtMaModule.Text == "") || (txtTenModule.Text == ""))
                {
                    MessageBox.Show("Thông tin không được để trống");
                    return;
                }

                if (vali.checkDuplicate(txtMaModule.Text, tbModule, 0))
                {
                    MessageBox.Show("Đã có module sử dụng mã này trong database");
                    return;
                }
                string sInsert = "InsertModule N'"+txtMaModule.Text+"',N'"+txtTenModule.Text+"',N'"+cbbNhomModule.SelectedValue.ToString()+"',N'"+txtGhiChu.Text+"'";

                SqlCommand sqlInsert = new SqlCommand(sInsert, cm.conn);

                if (cm.conn.State == ConnectionState.Closed)
                    cm.conn.Open();

                sqlInsert.ExecuteNonQuery();
                loadModuleData();

                if (cm.conn.State == ConnectionState.Open)
                    cm.conn.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {

                if ((txtMaModule.Text == "") || (txtTenModule.Text == ""))
                {
                    MessageBox.Show("Thông tin không được để trống");
                    return;
                }

                if (!vali.checkDuplicate(txtMaModule.Text, tbModule, 0))
                {
                    MessageBox.Show("Không có mã này trong database");
                    return;
                }
                string sUpdate = "UpdateModule N'" + txtMaModule.Text + "',N'" + txtTenModule.Text + "',N'" + cbbNhomModule.SelectedValue.ToString() + "',N'" + txtGhiChu.Text + "', N'"+sModuleIdOld+"'";

                SqlCommand sqlUpdate = new SqlCommand(sUpdate, cm.conn);

                if (cm.conn.State == ConnectionState.Closed)
                    cm.conn.Open();

                sqlUpdate.ExecuteNonQuery();

                loadModuleData();

                if (cm.conn.State == ConnectionState.Open)
                    cm.conn.Close();
                

                dtgModule.Rows[iRowIndex].Selected = true;
                sModuleIdOld = txtMaModule.Text;

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                if (sModuleIdOld == "")
                {
                    MessageBox.Show("Chưa chọn module cần xóa");
                    return;
                }
                if (MessageBox.Show("Bạn có muốn xóa module '"+ sModuleIdOld +"' ko?","Xác nhận", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    SqlCommand sqlDel = new SqlCommand("Delete Module where ModuleID = N'" + sModuleIdOld + "'", cm.conn);
                    if (cm.conn.State == ConnectionState.Closed)
                        cm.conn.Open();
                    sqlDel.ExecuteNonQuery();
                    loadModuleData();
                    if (cm.conn.State == ConnectionState.Open)
                        cm.conn.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
